package com.pet.mapper;

import com.pet.pojo.AdoptionApplication;
import com.pet.pojo.PageRequest;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 领养申请数据访问层
 */
@Mapper
public interface AdoptionApplicationMapper {
    
    /**
     * 新增领养申请
     * @param application 申请信息
     * @return 影响行数
     */
    int insert(AdoptionApplication application);
    
    /**
     * 更新申请状态
     * @param id 申请ID
     * @param status 状态
     * @param reviewRemark 审核备注
     * @return 影响行数
     */
    int updateStatus(@Param("id") Long id, 
                    @Param("status") Integer status, 
                    @Param("reviewRemark") String reviewRemark);
    
    /**
     * 根据ID查询申请
     * @param id 申请ID
     * @return 申请信息
     */
    AdoptionApplication selectById(@Param("id") Long id);
    
    /**
     * 根据宠物ID查询申请列表
     * @param petId 宠物ID
     * @return 申请列表
     */
    List<AdoptionApplication> selectByPetId(@Param("petId") Long petId);
    
    /**
     * 根据申请人电话查询申请列表
     * @param phone 申请人电话
     * @return 申请列表
     */
    List<AdoptionApplication> selectByPhone(@Param("phone") String phone);
    
    /**
     * 查询所有申请
     * @return 申请列表
     */
    List<AdoptionApplication> selectAll();
} 